package 反射;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;

public class 反射_8_代理3 {
    public static void main(String[] args) {
        反射_8_代理1_接口 dx = new 反射_8_代理2();

        dx.test1();
        dx.test2();
        /**
         *参数1  类加载器
         * 参数2  被代理对象的接口
         * 参数3  代理对象
         */
        InvocationHandler handler =  new 反射_8_代理4_代理类(dx);
        反射_8_代理1_接口 dx1  = (反射_8_代理1_接口) Proxy.newProxyInstance(handler.getClass().getClassLoader(),dx.getClass().getInterfaces(),handler);
        dx1.test1();
        dx1.test2();
    }
}
